package harvard.cscie160.hw7.project;
import java.rmi.Remote;
import java.rmi.RemoteException;


/**
 * 
 * @author M. Bret Blackford
 *
 */
public interface ATM extends Remote {

	public Float getBalance(AccountInfo accountInfo) throws RemoteException;

	public void deposit(AccountInfo accountInfo, float amount) throws RemoteException;

	public void withdraw(AccountInfo accountInfo, float amount)
			throws RemoteException;

	public void transfer(AccountInfo fromAccount, AccountInfo toAccount,
			float amount) throws RemoteException;

	
	public void addListener(ATMListener listener) throws RemoteException;

	public void removeListener(ATMListener listener) throws RemoteException;

	public void authenticate(AccountInfo accountIfo)
			throws RemoteException;

	public void endSession() throws RemoteException;

	public void setDefaults() throws RemoteException;
}
